package com.macro.mall.model;

import java.util.ArrayList;
import java.util.Date;
import java.util.Iterator;
import java.util.List;

public class BmsBtnExample {
    protected String orderByClause;

    protected boolean distinct;

    protected List<Criteria> oredCriteria;

    public BmsBtnExample() {
        oredCriteria = new ArrayList<>();
    }

    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    public String getOrderByClause() {
        return orderByClause;
    }

    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    public boolean isDistinct() {
        return distinct;
    }

    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    protected abstract static class GeneratedCriteria {
        protected List<Criterion> criteria;

        protected GeneratedCriteria() {
            super();
            criteria = new ArrayList<>();
        }

        public boolean isValid() {
            return criteria.size() > 0;
        }

        public List<Criterion> getAllCriteria() {
            return criteria;
        }

        public List<Criterion> getCriteria() {
            return criteria;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteria.add(new Criterion(condition));
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value));
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value1, value2));
        }

        protected void addCriterionForJDBCDate(String condition, Date value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            addCriterion(condition, new java.sql.Date(value.getTime()), property);
        }

        protected void addCriterionForJDBCDate(String condition, List<Date> values, String property) {
            if (values == null || values.size() == 0) {
                throw new RuntimeException("Value list for " + property + " cannot be null or empty");
            }
            List<java.sql.Date> dateList = new ArrayList<>();
            Iterator<Date> iter = values.iterator();
            while (iter.hasNext()) {
                dateList.add(new java.sql.Date(iter.next().getTime()));
            }
            addCriterion(condition, dateList, property);
        }

        protected void addCriterionForJDBCDate(String condition, Date value1, Date value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            addCriterion(condition, new java.sql.Date(value1.getTime()), new java.sql.Date(value2.getTime()), property);
        }

        public Criteria andUuidIsNull() {
            addCriterion("UUID is null");
            return (Criteria) this;
        }

        public Criteria andUuidIsNotNull() {
            addCriterion("UUID is not null");
            return (Criteria) this;
        }

        public Criteria andUuidEqualTo(String value) {
            addCriterion("UUID =", value, "uuid");
            return (Criteria) this;
        }

        public Criteria andUuidNotEqualTo(String value) {
            addCriterion("UUID <>", value, "uuid");
            return (Criteria) this;
        }

        public Criteria andUuidGreaterThan(String value) {
            addCriterion("UUID >", value, "uuid");
            return (Criteria) this;
        }

        public Criteria andUuidGreaterThanOrEqualTo(String value) {
            addCriterion("UUID >=", value, "uuid");
            return (Criteria) this;
        }

        public Criteria andUuidLessThan(String value) {
            addCriterion("UUID <", value, "uuid");
            return (Criteria) this;
        }

        public Criteria andUuidLessThanOrEqualTo(String value) {
            addCriterion("UUID <=", value, "uuid");
            return (Criteria) this;
        }

        public Criteria andUuidLike(String value) {
            addCriterion("UUID like", value, "uuid");
            return (Criteria) this;
        }

        public Criteria andUuidNotLike(String value) {
            addCriterion("UUID not like", value, "uuid");
            return (Criteria) this;
        }

        public Criteria andUuidIn(List<String> values) {
            addCriterion("UUID in", values, "uuid");
            return (Criteria) this;
        }

        public Criteria andUuidNotIn(List<String> values) {
            addCriterion("UUID not in", values, "uuid");
            return (Criteria) this;
        }

        public Criteria andUuidBetween(String value1, String value2) {
            addCriterion("UUID between", value1, value2, "uuid");
            return (Criteria) this;
        }

        public Criteria andUuidNotBetween(String value1, String value2) {
            addCriterion("UUID not between", value1, value2, "uuid");
            return (Criteria) this;
        }

        public Criteria andBmsMenuUuidIsNull() {
            addCriterion("BMS_MENU_UUID is null");
            return (Criteria) this;
        }

        public Criteria andBmsMenuUuidIsNotNull() {
            addCriterion("BMS_MENU_UUID is not null");
            return (Criteria) this;
        }

        public Criteria andBmsMenuUuidEqualTo(String value) {
            addCriterion("BMS_MENU_UUID =", value, "bmsMenuUuid");
            return (Criteria) this;
        }

        public Criteria andBmsMenuUuidNotEqualTo(String value) {
            addCriterion("BMS_MENU_UUID <>", value, "bmsMenuUuid");
            return (Criteria) this;
        }

        public Criteria andBmsMenuUuidGreaterThan(String value) {
            addCriterion("BMS_MENU_UUID >", value, "bmsMenuUuid");
            return (Criteria) this;
        }

        public Criteria andBmsMenuUuidGreaterThanOrEqualTo(String value) {
            addCriterion("BMS_MENU_UUID >=", value, "bmsMenuUuid");
            return (Criteria) this;
        }

        public Criteria andBmsMenuUuidLessThan(String value) {
            addCriterion("BMS_MENU_UUID <", value, "bmsMenuUuid");
            return (Criteria) this;
        }

        public Criteria andBmsMenuUuidLessThanOrEqualTo(String value) {
            addCriterion("BMS_MENU_UUID <=", value, "bmsMenuUuid");
            return (Criteria) this;
        }

        public Criteria andBmsMenuUuidLike(String value) {
            addCriterion("BMS_MENU_UUID like", value, "bmsMenuUuid");
            return (Criteria) this;
        }

        public Criteria andBmsMenuUuidNotLike(String value) {
            addCriterion("BMS_MENU_UUID not like", value, "bmsMenuUuid");
            return (Criteria) this;
        }

        public Criteria andBmsMenuUuidIn(List<String> values) {
            addCriterion("BMS_MENU_UUID in", values, "bmsMenuUuid");
            return (Criteria) this;
        }

        public Criteria andBmsMenuUuidNotIn(List<String> values) {
            addCriterion("BMS_MENU_UUID not in", values, "bmsMenuUuid");
            return (Criteria) this;
        }

        public Criteria andBmsMenuUuidBetween(String value1, String value2) {
            addCriterion("BMS_MENU_UUID between", value1, value2, "bmsMenuUuid");
            return (Criteria) this;
        }

        public Criteria andBmsMenuUuidNotBetween(String value1, String value2) {
            addCriterion("BMS_MENU_UUID not between", value1, value2, "bmsMenuUuid");
            return (Criteria) this;
        }

        public Criteria andBtnNameIsNull() {
            addCriterion("BTN_NAME is null");
            return (Criteria) this;
        }

        public Criteria andBtnNameIsNotNull() {
            addCriterion("BTN_NAME is not null");
            return (Criteria) this;
        }

        public Criteria andBtnNameEqualTo(String value) {
            addCriterion("BTN_NAME =", value, "btnName");
            return (Criteria) this;
        }

        public Criteria andBtnNameNotEqualTo(String value) {
            addCriterion("BTN_NAME <>", value, "btnName");
            return (Criteria) this;
        }

        public Criteria andBtnNameGreaterThan(String value) {
            addCriterion("BTN_NAME >", value, "btnName");
            return (Criteria) this;
        }

        public Criteria andBtnNameGreaterThanOrEqualTo(String value) {
            addCriterion("BTN_NAME >=", value, "btnName");
            return (Criteria) this;
        }

        public Criteria andBtnNameLessThan(String value) {
            addCriterion("BTN_NAME <", value, "btnName");
            return (Criteria) this;
        }

        public Criteria andBtnNameLessThanOrEqualTo(String value) {
            addCriterion("BTN_NAME <=", value, "btnName");
            return (Criteria) this;
        }

        public Criteria andBtnNameLike(String value) {
            addCriterion("BTN_NAME like", value, "btnName");
            return (Criteria) this;
        }

        public Criteria andBtnNameNotLike(String value) {
            addCriterion("BTN_NAME not like", value, "btnName");
            return (Criteria) this;
        }

        public Criteria andBtnNameIn(List<String> values) {
            addCriterion("BTN_NAME in", values, "btnName");
            return (Criteria) this;
        }

        public Criteria andBtnNameNotIn(List<String> values) {
            addCriterion("BTN_NAME not in", values, "btnName");
            return (Criteria) this;
        }

        public Criteria andBtnNameBetween(String value1, String value2) {
            addCriterion("BTN_NAME between", value1, value2, "btnName");
            return (Criteria) this;
        }

        public Criteria andBtnNameNotBetween(String value1, String value2) {
            addCriterion("BTN_NAME not between", value1, value2, "btnName");
            return (Criteria) this;
        }

        public Criteria andBtnCodeIsNull() {
            addCriterion("BTN_CODE is null");
            return (Criteria) this;
        }

        public Criteria andBtnCodeIsNotNull() {
            addCriterion("BTN_CODE is not null");
            return (Criteria) this;
        }

        public Criteria andBtnCodeEqualTo(String value) {
            addCriterion("BTN_CODE =", value, "btnCode");
            return (Criteria) this;
        }

        public Criteria andBtnCodeNotEqualTo(String value) {
            addCriterion("BTN_CODE <>", value, "btnCode");
            return (Criteria) this;
        }

        public Criteria andBtnCodeGreaterThan(String value) {
            addCriterion("BTN_CODE >", value, "btnCode");
            return (Criteria) this;
        }

        public Criteria andBtnCodeGreaterThanOrEqualTo(String value) {
            addCriterion("BTN_CODE >=", value, "btnCode");
            return (Criteria) this;
        }

        public Criteria andBtnCodeLessThan(String value) {
            addCriterion("BTN_CODE <", value, "btnCode");
            return (Criteria) this;
        }

        public Criteria andBtnCodeLessThanOrEqualTo(String value) {
            addCriterion("BTN_CODE <=", value, "btnCode");
            return (Criteria) this;
        }

        public Criteria andBtnCodeLike(String value) {
            addCriterion("BTN_CODE like", value, "btnCode");
            return (Criteria) this;
        }

        public Criteria andBtnCodeNotLike(String value) {
            addCriterion("BTN_CODE not like", value, "btnCode");
            return (Criteria) this;
        }

        public Criteria andBtnCodeIn(List<String> values) {
            addCriterion("BTN_CODE in", values, "btnCode");
            return (Criteria) this;
        }

        public Criteria andBtnCodeNotIn(List<String> values) {
            addCriterion("BTN_CODE not in", values, "btnCode");
            return (Criteria) this;
        }

        public Criteria andBtnCodeBetween(String value1, String value2) {
            addCriterion("BTN_CODE between", value1, value2, "btnCode");
            return (Criteria) this;
        }

        public Criteria andBtnCodeNotBetween(String value1, String value2) {
            addCriterion("BTN_CODE not between", value1, value2, "btnCode");
            return (Criteria) this;
        }

        public Criteria andBtnTypeIsNull() {
            addCriterion("BTN_TYPE is null");
            return (Criteria) this;
        }

        public Criteria andBtnTypeIsNotNull() {
            addCriterion("BTN_TYPE is not null");
            return (Criteria) this;
        }

        public Criteria andBtnTypeEqualTo(String value) {
            addCriterion("BTN_TYPE =", value, "btnType");
            return (Criteria) this;
        }

        public Criteria andBtnTypeNotEqualTo(String value) {
            addCriterion("BTN_TYPE <>", value, "btnType");
            return (Criteria) this;
        }

        public Criteria andBtnTypeGreaterThan(String value) {
            addCriterion("BTN_TYPE >", value, "btnType");
            return (Criteria) this;
        }

        public Criteria andBtnTypeGreaterThanOrEqualTo(String value) {
            addCriterion("BTN_TYPE >=", value, "btnType");
            return (Criteria) this;
        }

        public Criteria andBtnTypeLessThan(String value) {
            addCriterion("BTN_TYPE <", value, "btnType");
            return (Criteria) this;
        }

        public Criteria andBtnTypeLessThanOrEqualTo(String value) {
            addCriterion("BTN_TYPE <=", value, "btnType");
            return (Criteria) this;
        }

        public Criteria andBtnTypeLike(String value) {
            addCriterion("BTN_TYPE like", value, "btnType");
            return (Criteria) this;
        }

        public Criteria andBtnTypeNotLike(String value) {
            addCriterion("BTN_TYPE not like", value, "btnType");
            return (Criteria) this;
        }

        public Criteria andBtnTypeIn(List<String> values) {
            addCriterion("BTN_TYPE in", values, "btnType");
            return (Criteria) this;
        }

        public Criteria andBtnTypeNotIn(List<String> values) {
            addCriterion("BTN_TYPE not in", values, "btnType");
            return (Criteria) this;
        }

        public Criteria andBtnTypeBetween(String value1, String value2) {
            addCriterion("BTN_TYPE between", value1, value2, "btnType");
            return (Criteria) this;
        }

        public Criteria andBtnTypeNotBetween(String value1, String value2) {
            addCriterion("BTN_TYPE not between", value1, value2, "btnType");
            return (Criteria) this;
        }

        public Criteria andBtnIconIsNull() {
            addCriterion("BTN_ICON is null");
            return (Criteria) this;
        }

        public Criteria andBtnIconIsNotNull() {
            addCriterion("BTN_ICON is not null");
            return (Criteria) this;
        }

        public Criteria andBtnIconEqualTo(String value) {
            addCriterion("BTN_ICON =", value, "btnIcon");
            return (Criteria) this;
        }

        public Criteria andBtnIconNotEqualTo(String value) {
            addCriterion("BTN_ICON <>", value, "btnIcon");
            return (Criteria) this;
        }

        public Criteria andBtnIconGreaterThan(String value) {
            addCriterion("BTN_ICON >", value, "btnIcon");
            return (Criteria) this;
        }

        public Criteria andBtnIconGreaterThanOrEqualTo(String value) {
            addCriterion("BTN_ICON >=", value, "btnIcon");
            return (Criteria) this;
        }

        public Criteria andBtnIconLessThan(String value) {
            addCriterion("BTN_ICON <", value, "btnIcon");
            return (Criteria) this;
        }

        public Criteria andBtnIconLessThanOrEqualTo(String value) {
            addCriterion("BTN_ICON <=", value, "btnIcon");
            return (Criteria) this;
        }

        public Criteria andBtnIconLike(String value) {
            addCriterion("BTN_ICON like", value, "btnIcon");
            return (Criteria) this;
        }

        public Criteria andBtnIconNotLike(String value) {
            addCriterion("BTN_ICON not like", value, "btnIcon");
            return (Criteria) this;
        }

        public Criteria andBtnIconIn(List<String> values) {
            addCriterion("BTN_ICON in", values, "btnIcon");
            return (Criteria) this;
        }

        public Criteria andBtnIconNotIn(List<String> values) {
            addCriterion("BTN_ICON not in", values, "btnIcon");
            return (Criteria) this;
        }

        public Criteria andBtnIconBetween(String value1, String value2) {
            addCriterion("BTN_ICON between", value1, value2, "btnIcon");
            return (Criteria) this;
        }

        public Criteria andBtnIconNotBetween(String value1, String value2) {
            addCriterion("BTN_ICON not between", value1, value2, "btnIcon");
            return (Criteria) this;
        }

        public Criteria andBtnUrlIsNull() {
            addCriterion("BTN_URL is null");
            return (Criteria) this;
        }

        public Criteria andBtnUrlIsNotNull() {
            addCriterion("BTN_URL is not null");
            return (Criteria) this;
        }

        public Criteria andBtnUrlEqualTo(String value) {
            addCriterion("BTN_URL =", value, "btnUrl");
            return (Criteria) this;
        }

        public Criteria andBtnUrlNotEqualTo(String value) {
            addCriterion("BTN_URL <>", value, "btnUrl");
            return (Criteria) this;
        }

        public Criteria andBtnUrlGreaterThan(String value) {
            addCriterion("BTN_URL >", value, "btnUrl");
            return (Criteria) this;
        }

        public Criteria andBtnUrlGreaterThanOrEqualTo(String value) {
            addCriterion("BTN_URL >=", value, "btnUrl");
            return (Criteria) this;
        }

        public Criteria andBtnUrlLessThan(String value) {
            addCriterion("BTN_URL <", value, "btnUrl");
            return (Criteria) this;
        }

        public Criteria andBtnUrlLessThanOrEqualTo(String value) {
            addCriterion("BTN_URL <=", value, "btnUrl");
            return (Criteria) this;
        }

        public Criteria andBtnUrlLike(String value) {
            addCriterion("BTN_URL like", value, "btnUrl");
            return (Criteria) this;
        }

        public Criteria andBtnUrlNotLike(String value) {
            addCriterion("BTN_URL not like", value, "btnUrl");
            return (Criteria) this;
        }

        public Criteria andBtnUrlIn(List<String> values) {
            addCriterion("BTN_URL in", values, "btnUrl");
            return (Criteria) this;
        }

        public Criteria andBtnUrlNotIn(List<String> values) {
            addCriterion("BTN_URL not in", values, "btnUrl");
            return (Criteria) this;
        }

        public Criteria andBtnUrlBetween(String value1, String value2) {
            addCriterion("BTN_URL between", value1, value2, "btnUrl");
            return (Criteria) this;
        }

        public Criteria andBtnUrlNotBetween(String value1, String value2) {
            addCriterion("BTN_URL not between", value1, value2, "btnUrl");
            return (Criteria) this;
        }

        public Criteria andBtnRankIsNull() {
            addCriterion("BTN_RANK is null");
            return (Criteria) this;
        }

        public Criteria andBtnRankIsNotNull() {
            addCriterion("BTN_RANK is not null");
            return (Criteria) this;
        }

        public Criteria andBtnRankEqualTo(Integer value) {
            addCriterion("BTN_RANK =", value, "btnRank");
            return (Criteria) this;
        }

        public Criteria andBtnRankNotEqualTo(Integer value) {
            addCriterion("BTN_RANK <>", value, "btnRank");
            return (Criteria) this;
        }

        public Criteria andBtnRankGreaterThan(Integer value) {
            addCriterion("BTN_RANK >", value, "btnRank");
            return (Criteria) this;
        }

        public Criteria andBtnRankGreaterThanOrEqualTo(Integer value) {
            addCriterion("BTN_RANK >=", value, "btnRank");
            return (Criteria) this;
        }

        public Criteria andBtnRankLessThan(Integer value) {
            addCriterion("BTN_RANK <", value, "btnRank");
            return (Criteria) this;
        }

        public Criteria andBtnRankLessThanOrEqualTo(Integer value) {
            addCriterion("BTN_RANK <=", value, "btnRank");
            return (Criteria) this;
        }

        public Criteria andBtnRankIn(List<Integer> values) {
            addCriterion("BTN_RANK in", values, "btnRank");
            return (Criteria) this;
        }

        public Criteria andBtnRankNotIn(List<Integer> values) {
            addCriterion("BTN_RANK not in", values, "btnRank");
            return (Criteria) this;
        }

        public Criteria andBtnRankBetween(Integer value1, Integer value2) {
            addCriterion("BTN_RANK between", value1, value2, "btnRank");
            return (Criteria) this;
        }

        public Criteria andBtnRankNotBetween(Integer value1, Integer value2) {
            addCriterion("BTN_RANK not between", value1, value2, "btnRank");
            return (Criteria) this;
        }

        public Criteria andDescriptionIsNull() {
            addCriterion("DESCRIPTION is null");
            return (Criteria) this;
        }

        public Criteria andDescriptionIsNotNull() {
            addCriterion("DESCRIPTION is not null");
            return (Criteria) this;
        }

        public Criteria andDescriptionEqualTo(String value) {
            addCriterion("DESCRIPTION =", value, "description");
            return (Criteria) this;
        }

        public Criteria andDescriptionNotEqualTo(String value) {
            addCriterion("DESCRIPTION <>", value, "description");
            return (Criteria) this;
        }

        public Criteria andDescriptionGreaterThan(String value) {
            addCriterion("DESCRIPTION >", value, "description");
            return (Criteria) this;
        }

        public Criteria andDescriptionGreaterThanOrEqualTo(String value) {
            addCriterion("DESCRIPTION >=", value, "description");
            return (Criteria) this;
        }

        public Criteria andDescriptionLessThan(String value) {
            addCriterion("DESCRIPTION <", value, "description");
            return (Criteria) this;
        }

        public Criteria andDescriptionLessThanOrEqualTo(String value) {
            addCriterion("DESCRIPTION <=", value, "description");
            return (Criteria) this;
        }

        public Criteria andDescriptionLike(String value) {
            addCriterion("DESCRIPTION like", value, "description");
            return (Criteria) this;
        }

        public Criteria andDescriptionNotLike(String value) {
            addCriterion("DESCRIPTION not like", value, "description");
            return (Criteria) this;
        }

        public Criteria andDescriptionIn(List<String> values) {
            addCriterion("DESCRIPTION in", values, "description");
            return (Criteria) this;
        }

        public Criteria andDescriptionNotIn(List<String> values) {
            addCriterion("DESCRIPTION not in", values, "description");
            return (Criteria) this;
        }

        public Criteria andDescriptionBetween(String value1, String value2) {
            addCriterion("DESCRIPTION between", value1, value2, "description");
            return (Criteria) this;
        }

        public Criteria andDescriptionNotBetween(String value1, String value2) {
            addCriterion("DESCRIPTION not between", value1, value2, "description");
            return (Criteria) this;
        }

        public Criteria andDeletedIsNull() {
            addCriterion("DELETED is null");
            return (Criteria) this;
        }

        public Criteria andDeletedIsNotNull() {
            addCriterion("DELETED is not null");
            return (Criteria) this;
        }

        public Criteria andDeletedEqualTo(String value) {
            addCriterion("DELETED =", value, "deleted");
            return (Criteria) this;
        }

        public Criteria andDeletedNotEqualTo(String value) {
            addCriterion("DELETED <>", value, "deleted");
            return (Criteria) this;
        }

        public Criteria andDeletedGreaterThan(String value) {
            addCriterion("DELETED >", value, "deleted");
            return (Criteria) this;
        }

        public Criteria andDeletedGreaterThanOrEqualTo(String value) {
            addCriterion("DELETED >=", value, "deleted");
            return (Criteria) this;
        }

        public Criteria andDeletedLessThan(String value) {
            addCriterion("DELETED <", value, "deleted");
            return (Criteria) this;
        }

        public Criteria andDeletedLessThanOrEqualTo(String value) {
            addCriterion("DELETED <=", value, "deleted");
            return (Criteria) this;
        }

        public Criteria andDeletedLike(String value) {
            addCriterion("DELETED like", value, "deleted");
            return (Criteria) this;
        }

        public Criteria andDeletedNotLike(String value) {
            addCriterion("DELETED not like", value, "deleted");
            return (Criteria) this;
        }

        public Criteria andDeletedIn(List<String> values) {
            addCriterion("DELETED in", values, "deleted");
            return (Criteria) this;
        }

        public Criteria andDeletedNotIn(List<String> values) {
            addCriterion("DELETED not in", values, "deleted");
            return (Criteria) this;
        }

        public Criteria andDeletedBetween(String value1, String value2) {
            addCriterion("DELETED between", value1, value2, "deleted");
            return (Criteria) this;
        }

        public Criteria andDeletedNotBetween(String value1, String value2) {
            addCriterion("DELETED not between", value1, value2, "deleted");
            return (Criteria) this;
        }

        public Criteria andCreatorIsNull() {
            addCriterion("CREATOR is null");
            return (Criteria) this;
        }

        public Criteria andCreatorIsNotNull() {
            addCriterion("CREATOR is not null");
            return (Criteria) this;
        }

        public Criteria andCreatorEqualTo(String value) {
            addCriterion("CREATOR =", value, "creator");
            return (Criteria) this;
        }

        public Criteria andCreatorNotEqualTo(String value) {
            addCriterion("CREATOR <>", value, "creator");
            return (Criteria) this;
        }

        public Criteria andCreatorGreaterThan(String value) {
            addCriterion("CREATOR >", value, "creator");
            return (Criteria) this;
        }

        public Criteria andCreatorGreaterThanOrEqualTo(String value) {
            addCriterion("CREATOR >=", value, "creator");
            return (Criteria) this;
        }

        public Criteria andCreatorLessThan(String value) {
            addCriterion("CREATOR <", value, "creator");
            return (Criteria) this;
        }

        public Criteria andCreatorLessThanOrEqualTo(String value) {
            addCriterion("CREATOR <=", value, "creator");
            return (Criteria) this;
        }

        public Criteria andCreatorLike(String value) {
            addCriterion("CREATOR like", value, "creator");
            return (Criteria) this;
        }

        public Criteria andCreatorNotLike(String value) {
            addCriterion("CREATOR not like", value, "creator");
            return (Criteria) this;
        }

        public Criteria andCreatorIn(List<String> values) {
            addCriterion("CREATOR in", values, "creator");
            return (Criteria) this;
        }

        public Criteria andCreatorNotIn(List<String> values) {
            addCriterion("CREATOR not in", values, "creator");
            return (Criteria) this;
        }

        public Criteria andCreatorBetween(String value1, String value2) {
            addCriterion("CREATOR between", value1, value2, "creator");
            return (Criteria) this;
        }

        public Criteria andCreatorNotBetween(String value1, String value2) {
            addCriterion("CREATOR not between", value1, value2, "creator");
            return (Criteria) this;
        }

        public Criteria andUpdatorIsNull() {
            addCriterion("UPDATOR is null");
            return (Criteria) this;
        }

        public Criteria andUpdatorIsNotNull() {
            addCriterion("UPDATOR is not null");
            return (Criteria) this;
        }

        public Criteria andUpdatorEqualTo(String value) {
            addCriterion("UPDATOR =", value, "updator");
            return (Criteria) this;
        }

        public Criteria andUpdatorNotEqualTo(String value) {
            addCriterion("UPDATOR <>", value, "updator");
            return (Criteria) this;
        }

        public Criteria andUpdatorGreaterThan(String value) {
            addCriterion("UPDATOR >", value, "updator");
            return (Criteria) this;
        }

        public Criteria andUpdatorGreaterThanOrEqualTo(String value) {
            addCriterion("UPDATOR >=", value, "updator");
            return (Criteria) this;
        }

        public Criteria andUpdatorLessThan(String value) {
            addCriterion("UPDATOR <", value, "updator");
            return (Criteria) this;
        }

        public Criteria andUpdatorLessThanOrEqualTo(String value) {
            addCriterion("UPDATOR <=", value, "updator");
            return (Criteria) this;
        }

        public Criteria andUpdatorLike(String value) {
            addCriterion("UPDATOR like", value, "updator");
            return (Criteria) this;
        }

        public Criteria andUpdatorNotLike(String value) {
            addCriterion("UPDATOR not like", value, "updator");
            return (Criteria) this;
        }

        public Criteria andUpdatorIn(List<String> values) {
            addCriterion("UPDATOR in", values, "updator");
            return (Criteria) this;
        }

        public Criteria andUpdatorNotIn(List<String> values) {
            addCriterion("UPDATOR not in", values, "updator");
            return (Criteria) this;
        }

        public Criteria andUpdatorBetween(String value1, String value2) {
            addCriterion("UPDATOR between", value1, value2, "updator");
            return (Criteria) this;
        }

        public Criteria andUpdatorNotBetween(String value1, String value2) {
            addCriterion("UPDATOR not between", value1, value2, "updator");
            return (Criteria) this;
        }

        public Criteria andCreateTimeIsNull() {
            addCriterion("CREATE_TIME is null");
            return (Criteria) this;
        }

        public Criteria andCreateTimeIsNotNull() {
            addCriterion("CREATE_TIME is not null");
            return (Criteria) this;
        }

        public Criteria andCreateTimeEqualTo(Date value) {
            addCriterionForJDBCDate("CREATE_TIME =", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeNotEqualTo(Date value) {
            addCriterionForJDBCDate("CREATE_TIME <>", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeGreaterThan(Date value) {
            addCriterionForJDBCDate("CREATE_TIME >", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeGreaterThanOrEqualTo(Date value) {
            addCriterionForJDBCDate("CREATE_TIME >=", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeLessThan(Date value) {
            addCriterionForJDBCDate("CREATE_TIME <", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeLessThanOrEqualTo(Date value) {
            addCriterionForJDBCDate("CREATE_TIME <=", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeIn(List<Date> values) {
            addCriterionForJDBCDate("CREATE_TIME in", values, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeNotIn(List<Date> values) {
            addCriterionForJDBCDate("CREATE_TIME not in", values, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeBetween(Date value1, Date value2) {
            addCriterionForJDBCDate("CREATE_TIME between", value1, value2, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeNotBetween(Date value1, Date value2) {
            addCriterionForJDBCDate("CREATE_TIME not between", value1, value2, "createTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeIsNull() {
            addCriterion("UPDATE_TIME is null");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeIsNotNull() {
            addCriterion("UPDATE_TIME is not null");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeEqualTo(Date value) {
            addCriterionForJDBCDate("UPDATE_TIME =", value, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeNotEqualTo(Date value) {
            addCriterionForJDBCDate("UPDATE_TIME <>", value, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeGreaterThan(Date value) {
            addCriterionForJDBCDate("UPDATE_TIME >", value, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeGreaterThanOrEqualTo(Date value) {
            addCriterionForJDBCDate("UPDATE_TIME >=", value, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeLessThan(Date value) {
            addCriterionForJDBCDate("UPDATE_TIME <", value, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeLessThanOrEqualTo(Date value) {
            addCriterionForJDBCDate("UPDATE_TIME <=", value, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeIn(List<Date> values) {
            addCriterionForJDBCDate("UPDATE_TIME in", values, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeNotIn(List<Date> values) {
            addCriterionForJDBCDate("UPDATE_TIME not in", values, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeBetween(Date value1, Date value2) {
            addCriterionForJDBCDate("UPDATE_TIME between", value1, value2, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeNotBetween(Date value1, Date value2) {
            addCriterionForJDBCDate("UPDATE_TIME not between", value1, value2, "updateTime");
            return (Criteria) this;
        }
    }

    public static class Criteria extends GeneratedCriteria {
        protected Criteria() {
            super();
        }
    }

    public static class Criterion {
        private String condition;

        private Object value;

        private Object secondValue;

        private boolean noValue;

        private boolean singleValue;

        private boolean betweenValue;

        private boolean listValue;

        private String typeHandler;

        public String getCondition() {
            return condition;
        }

        public Object getValue() {
            return value;
        }

        public Object getSecondValue() {
            return secondValue;
        }

        public boolean isNoValue() {
            return noValue;
        }

        public boolean isSingleValue() {
            return singleValue;
        }

        public boolean isBetweenValue() {
            return betweenValue;
        }

        public boolean isListValue() {
            return listValue;
        }

        public String getTypeHandler() {
            return typeHandler;
        }

        protected Criterion(String condition) {
            super();
            this.condition = condition;
            this.typeHandler = null;
            this.noValue = true;
        }

        protected Criterion(String condition, Object value, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.typeHandler = typeHandler;
            if (value instanceof List<?>) {
                this.listValue = true;
            } else {
                this.singleValue = true;
            }
        }

        protected Criterion(String condition, Object value) {
            this(condition, value, null);
        }

        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.secondValue = secondValue;
            this.typeHandler = typeHandler;
            this.betweenValue = true;
        }

        protected Criterion(String condition, Object value, Object secondValue) {
            this(condition, value, secondValue, null);
        }
    }
}